{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "## Motion Retargeting\n",
    "### The BVH file format\n",
    "The Biovision Hierarchy (BVH) format stores animation data. It provides the information to construct a character and the pose of this character at each frame of the animation. The character is animated using a skeleton, a hierarchical structure composed of joints. The sense of motion comes from changes on the orientation (and sometimes translation) of these joints.\n",
    "\n",
    "The BVH file is divided into two sections: the header, identified by the keyword HIERARCHY, and the body, identified by MOTION. The header holds the skeleton hierarchy definition, i.e., the distance between each joint. The body section contains the animation, each line represents one frame in the animation, and it contains the orientation (and translation) at that frame. \n",
    "\n",
    "Except for the root joint, the first one in the hierarchy that often represents the hips, every joint has a parent joint. The values stored by the BVH file are relative to the parent joint, in order words, the orientation of a joint in a given frame is the local coordinate system of that joint in respect to its parent joint coordinate system. Furthermore, the orientation at a given frame represents the rotation from the base pose to its current position - and not from the last frame.\n",
    "\n",
    "### Import Libraries"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import os\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### The Joint and Animation Class\n",
    "Motion Retargeting process transfer motion between two skeletons. It is defined as the Animation Class to hold the information of each skeleton animation. The most important parameters of an Animation object is the name of the animation and a reference to the root joint of the skeleton.\n",
    "\n",
    "A Joint object contains a reference to its parent (except for the root), its children and the orientation and translation at each frame. Given the root joint, any joint is reachable recursively."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "class Animation:\n",
    "    def __init__(self, filename, root):\n",
    "        self.name = filename\n",
    "        self.root = root\n",
    "        self.listofjoints = []\n",
    "        self.surfaceinfo = []\n",
    "        self.skeletonmap = []\n",
    "        self.frames = None\n",
    "        self.frametime = None\n",
    "    \n",
    "    def getlistofjoints(self):\n",
    "        \"\"\"\n",
    "        Get list of joints in the animation\n",
    "        \"\"\"\n",
    "        if not self.listofjoints:\n",
    "            self.listofjoints = self.__auxgetlist(None, [])\n",
    "        return self.listofjoints\n",
    "            \n",
    "    def __auxgetlist(self, joint=None, listofjoints = []):\n",
    "        \"\"\"\n",
    "        Create and return list of joints in the animation\n",
    "        \"\"\"\n",
    "        if not joint:\n",
    "            joint = self.root\n",
    "        listofjoints.append(joint)\n",
    "        for child in joint.children:\n",
    "            self.__auxgetlist(child, listofjoints)\n",
    "        if joint == self.root:\n",
    "            return listofjoints\n",
    "        \n",
    "    def getJoint(self, jointname):\n",
    "        \"\"\"\n",
    "        Find the joint with jointname in the animation hierarchy\n",
    "        \"\"\"\n",
    "        return self.root.getByName(jointname)\n",
    "    \n",
    "class Joints:\n",
    "    def __init__(self, name, depth=0, parent=None):\n",
    "        self.name = name\n",
    "        self.depth = depth\n",
    "        self.children = []\n",
    "        self.parent = parent\n",
    "        self.endsite = []\n",
    "        self.translation = []\n",
    "        self.rotation = []\n",
    "        self.order = []\n",
    "        self.length = []\n",
    "        self.baserotation = []\n",
    "        if self.parent:\n",
    "            self.parent.addChild(self)\n",
    "            \n",
    "    def __iter__(self):\n",
    "        for child in self.children:\n",
    "            yield child\n",
    "            \n",
    "    def __reversed__(self):\n",
    "        while self.parent:\n",
    "            yield self.parent\n",
    "            self = self.parent\n",
    "            \n",
    "    def addChild(self, item):\n",
    "        \"\"\"\n",
    "        Called after initialization of every joint except root\n",
    "        \"\"\"\n",
    "        item.parent = self\n",
    "        self.children.append(item)\n",
    "        \n",
    "    def addOffset(self, offset):\n",
    "        self.offset = offset\n",
    "        \n",
    "    def addEndSite(self, endsite=None):\n",
    "        self.endsite = endsite\n",
    "        self.endsiteposition = []\n",
    "        \n",
    "    def getLastDepth(self, depth, jointsInDepth = []):\n",
    "        \"\"\"\n",
    "        Returns the last joint initializated with the depth provided\n",
    "        \"\"\"\n",
    "        if depth==0:\n",
    "            return self\n",
    "        else:\n",
    "            for child in self.children:\n",
    "                if child.depth == depth:\n",
    "                    jointsInDepth.append(child)\n",
    "                child.getLastDepth(depth, jointsInDepth)\n",
    "            return jointsInDepth[-1]\n",
    "        \n",
    "    def getDepth(self):\n",
    "        depth = 0\n",
    "        joint = self\n",
    "        if joint.parent:\n",
    "            while joint.parent:\n",
    "                depth = depth + 1\n",
    "                joint = joint.parent\n",
    "        return depth\n",
    "    \n",
    "    def getByName(self, name):\n",
    "        \"\"\"\n",
    "        Returns the joint object with the provided name\n",
    "        \"\"\"\n",
    "        if self.name == name:\n",
    "            return self\n",
    "        for child in self.children:\n",
    "            if child.name == name:\n",
    "                return child\n",
    "            else:\n",
    "                found = child.getByName(name)\n",
    "                if found:\n",
    "                    return found\n",
    "                \n",
    "    def printHierarchy(self, hierarchy=[]):\n",
    "        \"\"\"\n",
    "        Print hierarchy\n",
    "        \"\"\"\n",
    "        flag = False\n",
    "        if len(hierarchy)==0:\n",
    "            flag = True\n",
    "        #hierarchy.append(str.format(\"%s%s %s\" % (' '*2*int(self.depth),self.name, self.offset)))\n",
    "        print(\"%s%s %s\" % (' '*2*int(self.depth),self.name, self.offset))\n",
    "        try:\n",
    "            if len(self.endsite)>0:\n",
    "                #hierarchy.append(\"%s%s %s\" % (' '*2*(int(self.depth+1)),\"End Site\", self.endsite))\n",
    "                print(\"%s%s %s\" % (' '*2*(int(self.depth+1)),\"End Site\", self.endsite))\n",
    "        except:\n",
    "            pass\n",
    "        for child in self.children:\n",
    "            child.printHierarchy(hierarchy)\n",
    "        if flag:\n",
    "            return hierarchy"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "collapsed": true
   },
   "source": [
    "### Prepare BVH file conversion"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [],
   "source": [
    "def GetBVHDataFromFile(path):  \n",
    "    \n",
    "    def GetMotionLine(joint, frame, translation=[], rotation=[]):\n",
    "        \"\"\"\n",
    "        Get rotation and translation data for the joint at the given frame.\n",
    "        \"\"\"\n",
    "        translation.append(frame.split(' ')[len(translation)*6:len(translation)*6+3])\n",
    "        rotation.append(frame.split(' ')[len(rotation)*6+3:len(rotation)*6+6])\n",
    "        joint.translation.append(translation[-1])\n",
    "        joint.rotation.append(rotation[-1])\n",
    "        for child in joint.children:\n",
    "            GetMotionLine(child,frame, translation, rotation)\n",
    "        return translation, rotation\n",
    "    \n",
    "    def Motion2NP(joint):\n",
    "        \"\"\"\n",
    "        Transform rotation and position into numpy arrays\n",
    "        \"\"\"\n",
    "        joint.translation = np.asarray(joint.translation, float)\n",
    "        joint.rotation = np.asarray(joint.rotation, float)\n",
    "        joint.offset = np.asarray(joint.offset.split(' '),float)\n",
    "        if joint.order==\"ZXY\":\n",
    "            aux = np.copy(joint.rotation[:,0])\n",
    "            joint.rotation[:,0] = np.copy(joint.rotation[:,1])\n",
    "            joint.rotation[:,1] = np.copy(joint.rotation[:,2])\n",
    "            joint.rotation[:,2] = np.copy(aux)\n",
    "        if joint.endsite:\n",
    "            joint.endsite = np.asarray(joint.endsite.split(' '),float)\n",
    "        for child in joint:\n",
    "            Motion2NP(child)\n",
    "    \n",
    "    with open(path) as file:\n",
    "        data = [line for line in file]\n",
    "    offsetList = []\n",
    "    listofjoints = []\n",
    "    flagEndSite = False\n",
    "    for line in data:\n",
    "        if line.find(\"ROOT\") >= 0:\n",
    "            #Creates root joint\n",
    "            root = Joints(name = line[5:-1])\n",
    "            lastJoint = root\n",
    "            listofjoints.append(line[5:-1])\n",
    "            #Create the object of this file\n",
    "            filename = os.path.basename(path)[:-4]\n",
    "            bvhfile = Animation(filename, root)\n",
    "        if line.find(\"JOINT\") >= 0:\n",
    "            depth = line.count('\\t')\n",
    "            if depth == 0:\n",
    "                depth = line[:line.find('JOINT')].count(' ')/2\n",
    "            parent = root.getLastDepth(depth-1)\n",
    "            #Creates joint\n",
    "            lastJoint = Joints(name = line[line.find(\"JOINT\")+6:-1], depth=depth, parent=parent)\n",
    "            listofjoints.append(line[line.find(\"JOINT\")+6:-1])\n",
    "        if line.find(\"End Site\") >= 0:\n",
    "            flagEndSite = True\n",
    "            listofjoints.append(\"End Site\")\n",
    "        if (line.find(\"OFFSET\") >= 0) and (not flagEndSite):\n",
    "            lastJoint.addOffset(line[line.find(\"OFFSET\")+7:-1])\n",
    "            offsetList.append(line[line.find(\"OFFSET\")+7:-1])\n",
    "        elif (line.find(\"OFFSET\") >= 0) and (flagEndSite):\n",
    "            lastJoint.addEndSite(line[line.find(\"OFFSET\")+7:-1])\n",
    "            flagEndSite = False\n",
    "        if (line.find(\"CHANNELS\")) >= 0:\n",
    "            X = line.find(\"Xrotation\")\n",
    "            Y = line.find(\"Yrotation\")\n",
    "            Z = line.find(\"Zrotation\")\n",
    "            if Z < X and X < Y:\n",
    "                lastJoint.order = \"ZXY\"\n",
    "            elif X < Y and Y < Z:\n",
    "                lastJoint.order = \"XYZ\"\n",
    "            else:\n",
    "                lastJoint.order(\"XYZ\")\n",
    "                print(\"Invalid Channels order. XYZ chosen.\")\n",
    "        if (line.find(\"MOTION\")) >= 0:\n",
    "            index = data.index('MOTION\\n')\n",
    "            frames = data[index+3:]\n",
    "            bvhfile.frames = int(data[index+1][8:])\n",
    "            bvhfile.frametime = float(data[index+2][12:])\n",
    "            break\n",
    "    #Go to the next line\n",
    "    for counter in range(len(frames)):\n",
    "        GetMotionLine(root, frames[counter], translation=[], rotation=[])\n",
    "    #Convert values to numpy array\n",
    "    Motion2NP(bvhfile.root)\n",
    "    return bvhfile"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Read BVH file"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "C:\\Users\\Rodolfo\\Desktop\\IA369\\dev\\..\\sampledata\\RodolfoClaping.bvh\n"
     ]
    }
   ],
   "source": [
    "filename = 'RodolfoClaping.bvh'\n",
    "currentdir = os.getcwd()\n",
    "datapath = os.path.join(currentdir, '..\\sampledata')\n",
    "fullpath = os.path.join(datapath, filename)\n",
    "print(fullpath)\n",
    "animation = GetBVHDataFromFile(fullpath)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Check the animation name and reference to the root joint"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Animation name: RodolfoClaping. Type: <class '__main__.Animation'>\n",
      "Animation root: Hips. Type: <class '__main__.Joints'>\n",
      "Number of joints: 30\n"
     ]
    }
   ],
   "source": [
    "print('Animation name: %s. Type: %s' % (animation.name, type(animation)))\n",
    "print('Animation root: %s. Type: %s' % (animation.root.name, type(animation.root)))\n",
    "print('Number of joints: %i' % (len(animation.getlistofjoints())))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Print the name of the joints and their distance from parents recursively"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Hips [ 5.04731 94.866   -7.60916]\n",
      "  Spine [ 0.      15.3684  -2.40487]\n",
      "    Spine1 [0.      9.79164 0.     ]\n",
      "      Spine2 [0.      9.79164 0.     ]\n",
      "        Spine3 [0.      9.79164 0.     ]\n",
      "          Neck [ 0.      12.5893   1.25893]\n",
      "            Neck1 [0.    4.095 0.   ]\n",
      "              Head [0.    4.095 0.   ]\n",
      "                End Site [0.      9.72808 0.     ]\n",
      "          RightShoulder [0.      8.99232 5.27092]\n",
      "            RightArm [ 0.     21.4762  0.    ]\n",
      "              RightForeArm [ 0.     30.4806  0.    ]\n",
      "                RightHand [ 0.     25.7941  0.    ]\n",
      "                  RightHandThumb1 [-3.10387  3.51294  2.61218]\n",
      "                    End Site [0. 0. 0.]\n",
      "                  RightHandMiddle1 [ 0.         9.36783   -0.0600502]\n",
      "                    End Site [0. 0. 0.]\n",
      "          LeftShoulder [0.      8.99232 5.27092]\n",
      "            LeftArm [ 0.     21.4762  0.    ]\n",
      "              LeftForeArm [ 0.     30.4806  0.    ]\n",
      "                LeftHand [ 0.     25.7941  0.    ]\n",
      "                  LeftHandThumb1 [3.10387 3.51294 2.61218]\n",
      "                    End Site [0. 0. 0.]\n",
      "                  LeftHandMiddle1 [ 0.         9.36783   -0.0600502]\n",
      "                    End Site [0. 0. 0.]\n",
      "  RightUpLeg [-10.4733   0.       0.    ]\n",
      "    RightLeg [  0.     -45.8208   0.    ]\n",
      "      RightFoot [  0.     -45.0804   0.    ]\n",
      "        RightForeFoot [ 0.      -4.41419  0.     ]\n",
      "          RightToeBase [ 0.      0.     17.2874]\n",
      "            End Site [0.      0.      5.58569]\n",
      "  LeftUpLeg [10.4733  0.      0.    ]\n",
      "    LeftLeg [  0.     -45.8208   0.    ]\n",
      "      LeftFoot [  0.     -45.0804   0.    ]\n",
      "        LeftForeFoot [ 0.      -4.41419  0.     ]\n",
      "          LeftToeBase [ 0.      0.     17.2874]\n",
      "            End Site [0.      0.      4.94953]\n"
     ]
    }
   ],
   "source": [
    "_ = animation.root.printHierarchy()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### Animation\n",
    "The only translational joint of the hierarchy is the hips joint, or root, so that the character is able to move accros the volume. All the other joints are usually revolute, slot or spherical joints with 1, 2 and 3 degrees of freedom, respectively."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(-0.9494137433862431, 0.8053762566137577)"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 864x576 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize=(12,8))\n",
    "ax1 = fig.add_subplot(221)\n",
    "ax1.set_xlabel('Frames')\n",
    "ax1.set_ylabel('Translation')\n",
    "\n",
    "for joint in animation.getlistofjoints():\n",
    "    if joint.name != 'Hips':\n",
    "        plt.plot(joint.translation - np.mean(joint.translation, axis=0))\n",
    "        \n",
    "ax2 = fig.add_subplot(222)\n",
    "plt.plot(animation.root.translation - np.mean(animation.root.translation, axis=0))\n",
    "\n",
    "mini,maxi = np.min(animation.root.translation - np.mean(animation.root.translation, axis=0)), np.max(animation.root.translation - np.mean(animation.root.translation, axis=0))\n",
    "\n",
    "#ax1.set_ylim(mini,maxi)\n",
    "ax2.set_ylim(mini,maxi)"
   ]
  }
 ],
 "metadata": {
  "anaconda-cloud": {},
  "kernelspec": {
   "display_name": "Python [conda env:Anaconda3]",
   "language": "python",
   "name": "conda-env-Anaconda3-py"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.6"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
